home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Skunkware 98
/
Skunkware 98.iso
/
src
/
mail
/
pine3.96.tar.gz
/
pine3.96.tar
/
pine3.96
/
pine
/
osdep
/
codepage.os2
< prev
next >
Wrap
Text File
|
1996-06-06
|
25KB
|
458 lines
#line 2 "osdep/codepage.os2"
/*----------------------------------------------------------------------
Translation tables to map DOS codepages to ISO-8859-1 charsets and
back.
Note: These tables were basically lifted from Kermit 3.11 and
the textps.c program also distributed from Columbia U.
----------------------------------------------------------------------*/
/*
* Map from ISO 8859-1 Latin-1 to Code Page 437
*/
unsigned char L1cp437[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
32, 173, 155, 156, 15, 157, 124, 21, 34, 64, 166, 174, 170, 196, 63, 45,
248, 241, 253, 51, 39, 230, 20, 250, 44, 49, 167, 175, 172, 171, 63, 168,
65, 65, 65, 65, 142, 143, 146, 128, 69, 144, 69, 69, 73, 73, 73, 73,
68, 165, 79, 79, 79, 79, 153, 88, 79, 85, 85, 85, 154, 89, 63, 225,
133, 160, 131, 97, 132, 134, 145, 135, 138, 130, 136, 137, 141, 161, 140, 139,
63, 164, 149, 162, 147, 111, 148, 246, 111, 151, 163, 150, 129, 121, 63, 152
};
/*
* Map from ISO 8859-1 Latin-1 to Code Page 850
*/
unsigned char L1cp850[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
32, 173, 189, 156, 207, 190, 221, 245, 249, 184, 166, 174, 170, 240, 169, 238,
248, 241, 253, 252, 239, 230, 244, 250, 247, 251, 167, 175, 172, 171, 243, 168,
183, 181, 182, 199, 142, 143, 146, 128, 212, 144, 210, 211, 222, 214, 215, 216,
209, 165, 227, 224, 226, 229, 153, 158, 157, 235, 233, 234, 154, 237, 232, 225,
133, 160, 131, 198, 132, 134, 145, 135, 138, 130, 136, 137, 141, 161, 140, 139,
208, 164, 149, 162, 147, 228, 148, 246, 155, 151, 163, 150, 129, 236, 231, 152
};
/*
* Map from ISO 8859-1 Latin-1 to Code Page 860
*/
unsigned char L1cp860[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
32, 173, 155, 156, 15, 89, 124, 21, 34, 64, 166, 174, 170, 196, 63, 45,
248, 241, 253, 51, 39, 230, 20, 250, 44, 49, 167, 175, 172, 171, 63, 168,
145, 134, 143, 142, 65, 65, 65, 128, 146, 144, 137, 69, 139, 152, 73, 73,
68, 165, 169, 159, 140, 153, 79, 88, 79, 157, 150, 85, 154, 89, 63, 225,
133, 160, 131, 132, 97, 97, 97, 135, 138, 130, 136, 101, 141, 161, 105, 105,
63, 164, 149, 162, 147, 148, 111, 246, 111, 151, 163, 117, 129, 121, 63, 121
};
/*
* Map from ISO 8859-1 Latin-1 to Code Page 863
*/
unsigned char L1cp863[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
32, 63, 155, 156, 152, 89, 160, 143, 164, 64, 97, 174, 170, 196, 63, 167,
248, 241, 253, 166, 161, 230, 134, 250, 165, 49, 111, 175, 172, 171, 173, 63,
142, 65, 132, 65, 65, 65, 65, 128, 145, 144, 146, 148, 73, 73, 168, 149,
68, 78, 79, 79, 153, 79, 79, 88, 79, 157, 85, 158, 154, 89, 63, 225,
133, 97, 131, 97, 97, 97, 97, 135, 138, 130, 136, 137, 105, 105, 140, 139,
63, 110, 111, 162, 147, 111, 111, 246, 111, 151, 163, 150, 129, 121, 63, 121
};
/*
* Map from ISO 8859-1 Latin-1 to Code Page 865
*/
unsigned char L1cp865[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
32, 173, 63, 156, 175, 89, 124, 21, 34, 64, 166, 174, 170, 196, 63, 196,
248, 241, 253, 51, 39, 230, 20, 250, 44, 49, 167, 63, 172, 171, 63, 168,
65, 65, 65, 65, 142, 143, 146, 128, 69, 144, 69, 69, 73, 73, 73, 73,
68, 165, 79, 79, 79, 79, 153, 88, 157, 85, 85, 85, 154, 89, 63, 225,
133, 160, 131, 97, 132, 134, 145, 135, 138, 130, 136, 137, 141, 161, 140, 139,
63, 164, 149, 162, 147, 111, 148, 246, 155, 151, 163, 150, 129, 121, 63, 152
};
/*
* Map from ISO 8859-5 Latin-Cyrillic to Code Page 866
*/
unsigned char L5cp866[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
255, 240, 63, 63, 242, 83, 73, 79, 74, 63, 63, 72, 75, 45, 246, 63,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
252, 241, 63, 63, 243, 115, 105, 245, 106, 63, 63, 104, 107, 21, 247, 63
};
/*
* Map from ISO 8859-2 Latin-2 to Code Page 852
*/
unsigned char L2cp852[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
170, 164, 244, 157, 207, 149, 151, 245, 249, 230, 184, 155, 141, 240, 166, 189,
248, 165, 242, 136, 239, 150, 152, 243, 247, 231, 173, 156, 171, 241, 167, 190,
232, 181, 182, 198, 142, 145, 143, 128, 172, 144, 168, 211, 183, 214, 215, 210,
209, 227, 213, 224, 226, 138, 153, 158, 252, 222, 233, 235, 154, 237, 221, 225,
234, 160, 131, 199, 132, 146, 134, 135, 159, 130, 169, 137, 216, 161, 140, 212,
208, 228, 229, 162, 147, 139, 148, 246, 253, 133, 163, 251, 129, 236, 238, 250,
};
/*
* Map from ISO 8859-2 Latin-2 to Code Page Kamenicky (Czech/Slovak)
*/
unsigned char L2cp895[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
200, 129, 233, 239, 132, 207, 171, 232, 236, 204, 138, 205, 140, 141, 142, 193,
201, 190, 174, 147, 148, 211, 249, 218, 253, 153, 154, 169, 156, 221, 216, 187,
225, 237, 243, 250, 242, 210, 217, 167, 185, 155, 170, 134, 172, 173, 146, 175,
176, 177, 178, 179, 180, 181, 182, 183, 184, 168, 186, 159, 188, 189, 145, 191,
192, 143, 194, 195, 196, 197, 198, 199, 128, 144, 202, 203, 137, 139, 206, 133,
208, 209, 165, 149, 212, 213, 214, 215, 158, 166, 151, 219, 220, 157, 222, 223,
224, 160, 226, 227, 228, 229, 230, 231, 135, 130, 234, 235, 136, 161, 238, 131,
240, 241, 164, 162, 244, 245, 246, 247, 169, 150, 163, 251, 252, 152, 254, 255
};
/*
* Translation table to map IBM Code Page 437 to Latin1
*
* The comments from textps.c read:
*
* Line- and box-drawing characters are simulated with
* dashes, bars, and plus signs. Black and gray blobs (fill characters)
* are replaced by X's. Peseta is shown as P. Greek letters that don't
* exist in CourierLatin1 are shown as ?. Untranslatable math symbols are
* shown as ?.
*/
unsigned char cp437L1[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
199, 252, 233, 226, 228, 224, 229, 231, 234, 235, 232, 239, 238, 236, 196, 197,
201, 230, 198, 244, 246, 242, 251, 249, 255, 214, 220, 162, 163, 165, 80, 151,
225, 237, 243, 250, 241, 209, 170, 186, 191, 43, 172, 189, 188, 161, 171, 187,
88, 88, 88, 124, 43, 43, 43, 43, 43, 43, 124, 43, 43, 43, 43, 43,
43, 43, 43, 43, 45, 43, 43, 43, 43, 43, 43, 43, 43, 45, 43, 43,
43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 88, 88, 88, 88, 88,
63, 223, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
63, 177, 63, 63, 63, 63, 63, 63, 176, 134, 135, 63, 110, 178, 88, 160
};
/*
* Translation table to convert IBM CODE PAGE 850 to Latin1
*
* The comments from textps.c read:
*
* IBM Code Page 850. Line- and box-drawing characters are simulated with
* dashes, bars, and plus signs. Black blobs are replaced by X's.
*/
unsigned char cp850L1[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
199, 252, 233, 226, 228, 224, 229, 231, 234, 235, 232, 239, 238, 236, 196, 197,
201, 230, 198, 244, 246, 242, 251, 249, 255, 214, 220, 248, 163, 216, 215, 151,
225, 237, 243, 250, 241, 209, 170, 186, 191, 174, 172, 189, 188, 161, 171, 187,
88, 88, 88, 124, 43, 193, 194, 192, 169, 43, 124, 43, 43, 162, 165, 43,
43, 43, 43, 43, 45, 43, 227, 195, 43, 43, 43, 43, 43, 45, 43, 164,
240, 208, 202, 203, 200, 154, 205, 206, 207, 43, 43, 88, 88, 166, 204, 88,
211, 223, 212, 210, 245, 213, 181, 254, 222, 218, 219, 217, 253, 221, 175, 180,
173, 177, 61, 190, 182, 167, 247, 184, 176, 168, 134, 185, 179, 178, 88, 160
};
/*
* Map from ISO 8859-1 Latin-1 to Code Page 860
*/
unsigned char cp860L1[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
199, 252, 233, 226, 227, 224, 193, 231, 234, 202, 232, 204, 212, 236, 195, 194,
201, 192, 200, 244, 245, 242, 218, 249, 205, 213, 220, 162, 63, 217, 63, 21,
225, 237, 243, 250, 241, 209, 170, 186, 191, 210, 172, 189, 188, 161, 171, 187,
63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
63, 223, 63, 63, 63, 63, 181, 63, 63, 63, 63, 63, 63, 248, 63, 63,
63, 177, 63, 63, 63, 63, 247, 63, 176, 183, 183, 63, 63, 178, 63, 63
};
/*
* Map from ISO 8859-1 Latin-1 to Code Page 863
*/
unsigned char cp863L1[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
199, 252, 233, 226, 194, 224, 182, 231, 234, 235, 232, 239, 238, 61, 192, 167,
201, 200, 202, 244, 203, 207, 251, 249, 164, 212, 220, 162, 63, 217, 219, 63,
166, 180, 243, 250, 168, 184, 179, 175, 206, 63, 172, 189, 188, 190, 171, 187,
63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
63, 223, 63, 63, 63, 63, 181, 63, 63, 63, 63, 63, 63, 248, 63, 63,
63, 177, 63, 63, 63, 63, 247, 63, 176, 183, 183, 63, 63, 178, 63, 63
};
/*
* Map from ISO 8859-1 Latin-1 to Code Page 865
*/
unsigned char cp865L1[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
199, 252, 233, 226, 228, 224, 229, 231, 234, 235, 232, 239, 238, 236, 196, 197,
201, 230, 198, 244, 246, 242, 251, 249, 255, 214, 220, 248, 63, 216, 63, 63,
226, 237, 243, 250, 241, 209, 170, 186, 191, 63, 172, 189, 188, 161, 171, 164,
63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
63, 223, 63, 63, 63, 63, 181, 63, 63, 63, 63, 63, 63, 248, 63, 63,
63, 177, 63, 63, 63, 63, 247, 63, 176, 183, 183, 63, 63, 178, 63, 63
};
/*
* Map from ISO 8859-1 Latin-5 to Code Page 866
*/
unsigned char cp866L5[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
161, 241, 164, 244, 167, 247, 174, 254, 63, 63, 63, 63, 240, 63, 63, 160
};
/*
* Map from ISO 8859-2 Latin-2 to Code Page 852
*/
unsigned char cp852L2[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
199, 252, 233, 226, 228, 249, 230, 231, 179, 235, 213, 245, 238, 172, 196, 198,
201, 197, 229, 244, 246, 165, 181, 166, 182, 214, 220, 171, 187, 163, 215, 232,
225, 237, 243, 250, 161, 177, 174, 190, 202, 234, 160, 188, 200, 186, 0, 0,
0, 0, 0, 0, 0, 193, 194, 204, 170, 0, 0, 0, 0, 175, 191, 0,
0, 0, 0, 0, 0, 0, 195, 227, 0, 0, 0, 0, 0, 0, 0, 164,
240, 208, 207, 203, 239, 210, 205, 206, 236, 0, 0, 0, 0, 222, 217, 0,
211, 223, 212, 209, 241, 242, 169, 185, 192, 218, 224, 219, 253, 221, 254, 180,
173, 189, 178, 183, 162, 167, 247, 184, 176, 168, 255, 251, 216, 248, 0, 0
};
/*
* Map from ISO 8859-2 Latin-2 to Code Page Kamenicky (Czech/Slovak)
*/
unsigned char cp895L2[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
200, 129, 233, 239, 132, 207, 171, 232, 236, 204, 138, 205, 140, 141, 142, 193,
201, 190, 174, 147, 148, 211, 249, 218, 253, 153, 154, 169, 156, 221, 216, 187,
225, 237, 243, 250, 242, 210, 217, 167, 185, 248, 170, 171, 172, 173, 174, 175,
176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
};
/*----------------------------------------------------------------------
Return the specified file's contents in a translation array
Args: file name to open
Result: Returns array of unsigned char
----------------------------------------------------------------------*/
unsigned char *
read_xtable(fname)
char *fname;
{
FILE *fp;
unsigned char *cp;
int c, i = 0;
if(fname && (fp = fopen(fname, "r"))){
cp = (unsigned char *)fs_get(256 * sizeof(unsigned char));
while(fscanf(fp, "%d ", &c) == 1 && i < 256)
cp[i++] = (unsigned char)c;
fclose(fp);
if(i != 256){ /* table MUST be correct size */
q_status_message1(SM_ORDER,2,2,"Translation table \"%s\" too small",
fname);
display_message('x');
fs_give((void **)&cp);
}
return(cp);
}
else
return(NULL);
}
/*----------------------------------------------------------------------
Return the DOS version number
Args: none.
Result: Returns long containing major version in low-order byte,
and the minor version in the high-order byte.
----------------------------------------------------------------------*/
unsigned int
dos_version()
{
return(0x0005); /* fake some number > 3 */
}
/*----------------------------------------------------------------------
Return the active Global Code Page value
Args: none.
Result: Returns integer value corresponding to active code page
----------------------------------------------------------------------*/
int
dos_codepage()
{
ULONG cpList[16];
ULONG cpLen = sizeof cpList;
DosQueryCp(cpLen, cpList, &cpLen);
return (int)cpList[0];
}